package com.shatower.chatctrl.dao.pojo;

import java.util.ArrayList;
import java.util.Date;
import java.util.List;

public class UserExample {
    protected String orderByClause;

    protected boolean distinct;

    protected List<Criteria> oredCriteria;

    public UserExample() {
        oredCriteria = new ArrayList<Criteria>();
    }

    public void setOrderByClause(String orderByClause) {
        this.orderByClause = orderByClause;
    }

    public String getOrderByClause() {
        return orderByClause;
    }

    public void setDistinct(boolean distinct) {
        this.distinct = distinct;
    }

    public boolean isDistinct() {
        return distinct;
    }

    public List<Criteria> getOredCriteria() {
        return oredCriteria;
    }

    public void or(Criteria criteria) {
        oredCriteria.add(criteria);
    }

    public Criteria or() {
        Criteria criteria = createCriteriaInternal();
        oredCriteria.add(criteria);
        return criteria;
    }

    public Criteria createCriteria() {
        Criteria criteria = createCriteriaInternal();
        if (oredCriteria.size() == 0) {
            oredCriteria.add(criteria);
        }
        return criteria;
    }

    protected Criteria createCriteriaInternal() {
        Criteria criteria = new Criteria();
        return criteria;
    }

    public void clear() {
        oredCriteria.clear();
        orderByClause = null;
        distinct = false;
    }

    protected abstract static class GeneratedCriteria {
        protected List<Criterion> criteria;

        protected GeneratedCriteria() {
            super();
            criteria = new ArrayList<Criterion>();
        }

        public boolean isValid() {
            return criteria.size() > 0;
        }

        public List<Criterion> getAllCriteria() {
            return criteria;
        }

        public List<Criterion> getCriteria() {
            return criteria;
        }

        protected void addCriterion(String condition) {
            if (condition == null) {
                throw new RuntimeException("Value for condition cannot be null");
            }
            criteria.add(new Criterion(condition));
        }

        protected void addCriterion(String condition, Object value, String property) {
            if (value == null) {
                throw new RuntimeException("Value for " + property + " cannot be null");
            }
            criteria.add(new Criterion(condition, value));
        }

        protected void addCriterion(String condition, Object value1, Object value2, String property) {
            if (value1 == null || value2 == null) {
                throw new RuntimeException("Between values for " + property + " cannot be null");
            }
            criteria.add(new Criterion(condition, value1, value2));
        }

        public Criteria andUserweixinidIsNull() {
            addCriterion("userWeixinId is null");
            return (Criteria) this;
        }

        public Criteria andUserweixinidIsNotNull() {
            addCriterion("userWeixinId is not null");
            return (Criteria) this;
        }

        public Criteria andUserweixinidEqualTo(String value) {
            addCriterion("userWeixinId =", value, "userweixinid");
            return (Criteria) this;
        }

        public Criteria andUserweixinidNotEqualTo(String value) {
            addCriterion("userWeixinId <>", value, "userweixinid");
            return (Criteria) this;
        }

        public Criteria andUserweixinidGreaterThan(String value) {
            addCriterion("userWeixinId >", value, "userweixinid");
            return (Criteria) this;
        }

        public Criteria andUserweixinidGreaterThanOrEqualTo(String value) {
            addCriterion("userWeixinId >=", value, "userweixinid");
            return (Criteria) this;
        }

        public Criteria andUserweixinidLessThan(String value) {
            addCriterion("userWeixinId <", value, "userweixinid");
            return (Criteria) this;
        }

        public Criteria andUserweixinidLessThanOrEqualTo(String value) {
            addCriterion("userWeixinId <=", value, "userweixinid");
            return (Criteria) this;
        }

        public Criteria andUserweixinidLike(String value) {
            addCriterion("userWeixinId like", value, "userweixinid");
            return (Criteria) this;
        }

        public Criteria andUserweixinidNotLike(String value) {
            addCriterion("userWeixinId not like", value, "userweixinid");
            return (Criteria) this;
        }

        public Criteria andUserweixinidIn(List<String> values) {
            addCriterion("userWeixinId in", values, "userweixinid");
            return (Criteria) this;
        }

        public Criteria andUserweixinidNotIn(List<String> values) {
            addCriterion("userWeixinId not in", values, "userweixinid");
            return (Criteria) this;
        }

        public Criteria andUserweixinidBetween(String value1, String value2) {
            addCriterion("userWeixinId between", value1, value2, "userweixinid");
            return (Criteria) this;
        }

        public Criteria andUserweixinidNotBetween(String value1, String value2) {
            addCriterion("userWeixinId not between", value1, value2, "userweixinid");
            return (Criteria) this;
        }

        public Criteria andWeixinnicknameIsNull() {
            addCriterion("weixinNickname is null");
            return (Criteria) this;
        }

        public Criteria andWeixinnicknameIsNotNull() {
            addCriterion("weixinNickname is not null");
            return (Criteria) this;
        }

        public Criteria andWeixinnicknameEqualTo(String value) {
            addCriterion("weixinNickname =", value, "weixinnickname");
            return (Criteria) this;
        }

        public Criteria andWeixinnicknameNotEqualTo(String value) {
            addCriterion("weixinNickname <>", value, "weixinnickname");
            return (Criteria) this;
        }

        public Criteria andWeixinnicknameGreaterThan(String value) {
            addCriterion("weixinNickname >", value, "weixinnickname");
            return (Criteria) this;
        }

        public Criteria andWeixinnicknameGreaterThanOrEqualTo(String value) {
            addCriterion("weixinNickname >=", value, "weixinnickname");
            return (Criteria) this;
        }

        public Criteria andWeixinnicknameLessThan(String value) {
            addCriterion("weixinNickname <", value, "weixinnickname");
            return (Criteria) this;
        }

        public Criteria andWeixinnicknameLessThanOrEqualTo(String value) {
            addCriterion("weixinNickname <=", value, "weixinnickname");
            return (Criteria) this;
        }

        public Criteria andWeixinnicknameLike(String value) {
            addCriterion("weixinNickname like", value, "weixinnickname");
            return (Criteria) this;
        }

        public Criteria andWeixinnicknameNotLike(String value) {
            addCriterion("weixinNickname not like", value, "weixinnickname");
            return (Criteria) this;
        }

        public Criteria andWeixinnicknameIn(List<String> values) {
            addCriterion("weixinNickname in", values, "weixinnickname");
            return (Criteria) this;
        }

        public Criteria andWeixinnicknameNotIn(List<String> values) {
            addCriterion("weixinNickname not in", values, "weixinnickname");
            return (Criteria) this;
        }

        public Criteria andWeixinnicknameBetween(String value1, String value2) {
            addCriterion("weixinNickname between", value1, value2, "weixinnickname");
            return (Criteria) this;
        }

        public Criteria andWeixinnicknameNotBetween(String value1, String value2) {
            addCriterion("weixinNickname not between", value1, value2, "weixinnickname");
            return (Criteria) this;
        }

        public Criteria andUserweixinnameIsNull() {
            addCriterion("userWeixinName is null");
            return (Criteria) this;
        }

        public Criteria andUserweixinnameIsNotNull() {
            addCriterion("userWeixinName is not null");
            return (Criteria) this;
        }

        public Criteria andUserweixinnameEqualTo(String value) {
            addCriterion("userWeixinName =", value, "userweixinname");
            return (Criteria) this;
        }

        public Criteria andUserweixinnameNotEqualTo(String value) {
            addCriterion("userWeixinName <>", value, "userweixinname");
            return (Criteria) this;
        }

        public Criteria andUserweixinnameGreaterThan(String value) {
            addCriterion("userWeixinName >", value, "userweixinname");
            return (Criteria) this;
        }

        public Criteria andUserweixinnameGreaterThanOrEqualTo(String value) {
            addCriterion("userWeixinName >=", value, "userweixinname");
            return (Criteria) this;
        }

        public Criteria andUserweixinnameLessThan(String value) {
            addCriterion("userWeixinName <", value, "userweixinname");
            return (Criteria) this;
        }

        public Criteria andUserweixinnameLessThanOrEqualTo(String value) {
            addCriterion("userWeixinName <=", value, "userweixinname");
            return (Criteria) this;
        }

        public Criteria andUserweixinnameLike(String value) {
            addCriterion("userWeixinName like", value, "userweixinname");
            return (Criteria) this;
        }

        public Criteria andUserweixinnameNotLike(String value) {
            addCriterion("userWeixinName not like", value, "userweixinname");
            return (Criteria) this;
        }

        public Criteria andUserweixinnameIn(List<String> values) {
            addCriterion("userWeixinName in", values, "userweixinname");
            return (Criteria) this;
        }

        public Criteria andUserweixinnameNotIn(List<String> values) {
            addCriterion("userWeixinName not in", values, "userweixinname");
            return (Criteria) this;
        }

        public Criteria andUserweixinnameBetween(String value1, String value2) {
            addCriterion("userWeixinName between", value1, value2, "userweixinname");
            return (Criteria) this;
        }

        public Criteria andUserweixinnameNotBetween(String value1, String value2) {
            addCriterion("userWeixinName not between", value1, value2, "userweixinname");
            return (Criteria) this;
        }

        public Criteria andUserweixinimgurlIsNull() {
            addCriterion("userWeixinImgUrl is null");
            return (Criteria) this;
        }

        public Criteria andUserweixinimgurlIsNotNull() {
            addCriterion("userWeixinImgUrl is not null");
            return (Criteria) this;
        }

        public Criteria andUserweixinimgurlEqualTo(String value) {
            addCriterion("userWeixinImgUrl =", value, "userweixinimgurl");
            return (Criteria) this;
        }

        public Criteria andUserweixinimgurlNotEqualTo(String value) {
            addCriterion("userWeixinImgUrl <>", value, "userweixinimgurl");
            return (Criteria) this;
        }

        public Criteria andUserweixinimgurlGreaterThan(String value) {
            addCriterion("userWeixinImgUrl >", value, "userweixinimgurl");
            return (Criteria) this;
        }

        public Criteria andUserweixinimgurlGreaterThanOrEqualTo(String value) {
            addCriterion("userWeixinImgUrl >=", value, "userweixinimgurl");
            return (Criteria) this;
        }

        public Criteria andUserweixinimgurlLessThan(String value) {
            addCriterion("userWeixinImgUrl <", value, "userweixinimgurl");
            return (Criteria) this;
        }

        public Criteria andUserweixinimgurlLessThanOrEqualTo(String value) {
            addCriterion("userWeixinImgUrl <=", value, "userweixinimgurl");
            return (Criteria) this;
        }

        public Criteria andUserweixinimgurlLike(String value) {
            addCriterion("userWeixinImgUrl like", value, "userweixinimgurl");
            return (Criteria) this;
        }

        public Criteria andUserweixinimgurlNotLike(String value) {
            addCriterion("userWeixinImgUrl not like", value, "userweixinimgurl");
            return (Criteria) this;
        }

        public Criteria andUserweixinimgurlIn(List<String> values) {
            addCriterion("userWeixinImgUrl in", values, "userweixinimgurl");
            return (Criteria) this;
        }

        public Criteria andUserweixinimgurlNotIn(List<String> values) {
            addCriterion("userWeixinImgUrl not in", values, "userweixinimgurl");
            return (Criteria) this;
        }

        public Criteria andUserweixinimgurlBetween(String value1, String value2) {
            addCriterion("userWeixinImgUrl between", value1, value2, "userweixinimgurl");
            return (Criteria) this;
        }

        public Criteria andUserweixinimgurlNotBetween(String value1, String value2) {
            addCriterion("userWeixinImgUrl not between", value1, value2, "userweixinimgurl");
            return (Criteria) this;
        }

        public Criteria andUserweixinsexyIsNull() {
            addCriterion("userWeixinSexy is null");
            return (Criteria) this;
        }

        public Criteria andUserweixinsexyIsNotNull() {
            addCriterion("userWeixinSexy is not null");
            return (Criteria) this;
        }

        public Criteria andUserweixinsexyEqualTo(Short value) {
            addCriterion("userWeixinSexy =", value, "userweixinsexy");
            return (Criteria) this;
        }

        public Criteria andUserweixinsexyNotEqualTo(Short value) {
            addCriterion("userWeixinSexy <>", value, "userweixinsexy");
            return (Criteria) this;
        }

        public Criteria andUserweixinsexyGreaterThan(Short value) {
            addCriterion("userWeixinSexy >", value, "userweixinsexy");
            return (Criteria) this;
        }

        public Criteria andUserweixinsexyGreaterThanOrEqualTo(Short value) {
            addCriterion("userWeixinSexy >=", value, "userweixinsexy");
            return (Criteria) this;
        }

        public Criteria andUserweixinsexyLessThan(Short value) {
            addCriterion("userWeixinSexy <", value, "userweixinsexy");
            return (Criteria) this;
        }

        public Criteria andUserweixinsexyLessThanOrEqualTo(Short value) {
            addCriterion("userWeixinSexy <=", value, "userweixinsexy");
            return (Criteria) this;
        }

        public Criteria andUserweixinsexyIn(List<Short> values) {
            addCriterion("userWeixinSexy in", values, "userweixinsexy");
            return (Criteria) this;
        }

        public Criteria andUserweixinsexyNotIn(List<Short> values) {
            addCriterion("userWeixinSexy not in", values, "userweixinsexy");
            return (Criteria) this;
        }

        public Criteria andUserweixinsexyBetween(Short value1, Short value2) {
            addCriterion("userWeixinSexy between", value1, value2, "userweixinsexy");
            return (Criteria) this;
        }

        public Criteria andUserweixinsexyNotBetween(Short value1, Short value2) {
            addCriterion("userWeixinSexy not between", value1, value2, "userweixinsexy");
            return (Criteria) this;
        }

        public Criteria andUserweixincountryIsNull() {
            addCriterion("userWeixinCountry is null");
            return (Criteria) this;
        }

        public Criteria andUserweixincountryIsNotNull() {
            addCriterion("userWeixinCountry is not null");
            return (Criteria) this;
        }

        public Criteria andUserweixincountryEqualTo(String value) {
            addCriterion("userWeixinCountry =", value, "userweixincountry");
            return (Criteria) this;
        }

        public Criteria andUserweixincountryNotEqualTo(String value) {
            addCriterion("userWeixinCountry <>", value, "userweixincountry");
            return (Criteria) this;
        }

        public Criteria andUserweixincountryGreaterThan(String value) {
            addCriterion("userWeixinCountry >", value, "userweixincountry");
            return (Criteria) this;
        }

        public Criteria andUserweixincountryGreaterThanOrEqualTo(String value) {
            addCriterion("userWeixinCountry >=", value, "userweixincountry");
            return (Criteria) this;
        }

        public Criteria andUserweixincountryLessThan(String value) {
            addCriterion("userWeixinCountry <", value, "userweixincountry");
            return (Criteria) this;
        }

        public Criteria andUserweixincountryLessThanOrEqualTo(String value) {
            addCriterion("userWeixinCountry <=", value, "userweixincountry");
            return (Criteria) this;
        }

        public Criteria andUserweixincountryLike(String value) {
            addCriterion("userWeixinCountry like", value, "userweixincountry");
            return (Criteria) this;
        }

        public Criteria andUserweixincountryNotLike(String value) {
            addCriterion("userWeixinCountry not like", value, "userweixincountry");
            return (Criteria) this;
        }

        public Criteria andUserweixincountryIn(List<String> values) {
            addCriterion("userWeixinCountry in", values, "userweixincountry");
            return (Criteria) this;
        }

        public Criteria andUserweixincountryNotIn(List<String> values) {
            addCriterion("userWeixinCountry not in", values, "userweixincountry");
            return (Criteria) this;
        }

        public Criteria andUserweixincountryBetween(String value1, String value2) {
            addCriterion("userWeixinCountry between", value1, value2, "userweixincountry");
            return (Criteria) this;
        }

        public Criteria andUserweixincountryNotBetween(String value1, String value2) {
            addCriterion("userWeixinCountry not between", value1, value2, "userweixincountry");
            return (Criteria) this;
        }

        public Criteria andUserweixinprovinceIsNull() {
            addCriterion("userWeixinProvince is null");
            return (Criteria) this;
        }

        public Criteria andUserweixinprovinceIsNotNull() {
            addCriterion("userWeixinProvince is not null");
            return (Criteria) this;
        }

        public Criteria andUserweixinprovinceEqualTo(String value) {
            addCriterion("userWeixinProvince =", value, "userweixinprovince");
            return (Criteria) this;
        }

        public Criteria andUserweixinprovinceNotEqualTo(String value) {
            addCriterion("userWeixinProvince <>", value, "userweixinprovince");
            return (Criteria) this;
        }

        public Criteria andUserweixinprovinceGreaterThan(String value) {
            addCriterion("userWeixinProvince >", value, "userweixinprovince");
            return (Criteria) this;
        }

        public Criteria andUserweixinprovinceGreaterThanOrEqualTo(String value) {
            addCriterion("userWeixinProvince >=", value, "userweixinprovince");
            return (Criteria) this;
        }

        public Criteria andUserweixinprovinceLessThan(String value) {
            addCriterion("userWeixinProvince <", value, "userweixinprovince");
            return (Criteria) this;
        }

        public Criteria andUserweixinprovinceLessThanOrEqualTo(String value) {
            addCriterion("userWeixinProvince <=", value, "userweixinprovince");
            return (Criteria) this;
        }

        public Criteria andUserweixinprovinceLike(String value) {
            addCriterion("userWeixinProvince like", value, "userweixinprovince");
            return (Criteria) this;
        }

        public Criteria andUserweixinprovinceNotLike(String value) {
            addCriterion("userWeixinProvince not like", value, "userweixinprovince");
            return (Criteria) this;
        }

        public Criteria andUserweixinprovinceIn(List<String> values) {
            addCriterion("userWeixinProvince in", values, "userweixinprovince");
            return (Criteria) this;
        }

        public Criteria andUserweixinprovinceNotIn(List<String> values) {
            addCriterion("userWeixinProvince not in", values, "userweixinprovince");
            return (Criteria) this;
        }

        public Criteria andUserweixinprovinceBetween(String value1, String value2) {
            addCriterion("userWeixinProvince between", value1, value2, "userweixinprovince");
            return (Criteria) this;
        }

        public Criteria andUserweixinprovinceNotBetween(String value1, String value2) {
            addCriterion("userWeixinProvince not between", value1, value2, "userweixinprovince");
            return (Criteria) this;
        }

        public Criteria andUpdatetimeIsNull() {
            addCriterion("updateTime is null");
            return (Criteria) this;
        }

        public Criteria andUpdatetimeIsNotNull() {
            addCriterion("updateTime is not null");
            return (Criteria) this;
        }

        public Criteria andUpdatetimeEqualTo(Date value) {
            addCriterion("updateTime =", value, "updatetime");
            return (Criteria) this;
        }

        public Criteria andUpdatetimeNotEqualTo(Date value) {
            addCriterion("updateTime <>", value, "updatetime");
            return (Criteria) this;
        }

        public Criteria andUpdatetimeGreaterThan(Date value) {
            addCriterion("updateTime >", value, "updatetime");
            return (Criteria) this;
        }

        public Criteria andUpdatetimeGreaterThanOrEqualTo(Date value) {
            addCriterion("updateTime >=", value, "updatetime");
            return (Criteria) this;
        }

        public Criteria andUpdatetimeLessThan(Date value) {
            addCriterion("updateTime <", value, "updatetime");
            return (Criteria) this;
        }

        public Criteria andUpdatetimeLessThanOrEqualTo(Date value) {
            addCriterion("updateTime <=", value, "updatetime");
            return (Criteria) this;
        }

        public Criteria andUpdatetimeIn(List<Date> values) {
            addCriterion("updateTime in", values, "updatetime");
            return (Criteria) this;
        }

        public Criteria andUpdatetimeNotIn(List<Date> values) {
            addCriterion("updateTime not in", values, "updatetime");
            return (Criteria) this;
        }

        public Criteria andUpdatetimeBetween(Date value1, Date value2) {
            addCriterion("updateTime between", value1, value2, "updatetime");
            return (Criteria) this;
        }

        public Criteria andUpdatetimeNotBetween(Date value1, Date value2) {
            addCriterion("updateTime not between", value1, value2, "updatetime");
            return (Criteria) this;
        }
    }

    public static class Criteria extends GeneratedCriteria {

        protected Criteria() {
            super();
        }
    }

    public static class Criterion {
        private String condition;

        private Object value;

        private Object secondValue;

        private boolean noValue;

        private boolean singleValue;

        private boolean betweenValue;

        private boolean listValue;

        private String typeHandler;

        public String getCondition() {
            return condition;
        }

        public Object getValue() {
            return value;
        }

        public Object getSecondValue() {
            return secondValue;
        }

        public boolean isNoValue() {
            return noValue;
        }

        public boolean isSingleValue() {
            return singleValue;
        }

        public boolean isBetweenValue() {
            return betweenValue;
        }

        public boolean isListValue() {
            return listValue;
        }

        public String getTypeHandler() {
            return typeHandler;
        }

        protected Criterion(String condition) {
            super();
            this.condition = condition;
            this.typeHandler = null;
            this.noValue = true;
        }

        protected Criterion(String condition, Object value, String typeHandler) {
            super();
            this.condition = condition;
            this.value = value;
            this.typeHandler = typeHandler;
            if (value instanceof List<?>) {
                this.listValue = true;
            } else {
                this.singleValue = true;
            }
        }

        protected Criterion(String condition, Object value) {
            this(condition, value, null);
        }

        protected Criterion(String condition, Object value, Object secondValue, String typeHandler) {
            super();
            this.condition = condition;
            this.value = value;
            this.secondValue = secondValue;
            this.typeHandler = typeHandler;
            this.betweenValue = true;
        }

        protected Criterion(String condition, Object value, Object secondValue) {
            this(condition, value, secondValue, null);
        }
    }
}